package com.myown.structure;

import java.util.ArrayList;
import java.util.List;

/**
 * 栈接口 <p>
 *
 * @author lincky
 * @version v1.0.0
 * @time 2017.02.21 17:26
 */
public interface Stack<E> {

    /**
     * 入栈 <p>
     *
     * @param item 入栈元素
     */
    void push(E item);

    /**
     * 出栈 <p>
     *
     * @return 栈顶数据
     */
    E pop();

    /**
     * 返回栈顶元素
     *
     * @return 栈顶元素
     */
    E peek();

    /**
     * 栈是否为空 <p>
     *
     * @return <tt>true</tt> - 栈为空
     */
    boolean empty();

    /**
     * 栈大小 <p>
     *
     * @return 栈大小
     */
    int size();


    /**
     * 清空栈
     */
    void clear();

}
